Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

libtap

Package Overview
Dependencies
Maintainers
2
Versions
16
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

libtap

A Test-Anything-Protocol library for JavaScript

  • 1.4.1
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
2
Created
Source

libtap

A TAP test library for Node.js.

libtap vs tap

tap extends this module and provides many other nice features. Generally you should be using require('tap') instead of require('libtap'). In some edge cases it can be appropriate to use libtap directly.

  • Install size is important - libtap has significantly less dependencies.
  • Your tests are suspectable to transformations or other environmental changes. tap does things that are useful by default, if this causes problems for your code you may wish to go lower level.

Recursive rmdir

Some parts of libtap require recursive rmdir functions. In Node.js 12.10.0+ this is provided by the Node.js core fs module. For older versions of Node.js you must set compatible functions:

const rimraf = require('rimraf')
const settings = require('libtap/settings')
settings.rmdirRecursiveSync = dir => rimraf.sync(dir, {glob: false})
settings.rmdirRecursive = (dir, cb) => rimraf(dir, {glob: false}, cb)

This is handled by tap so only direct users of libtap who need to support older versions of Node.js need to worry about this.

It is not considered semver-major for a libtap function to use recursive rmdir where it previously did not. If you test on older versions of Node.js then you must ensure a user-space implementation is available even if it is not currently needed.

Environmental changes still in place

  • signal-exit is run
  • async-domain-hook is run
  • process.stdout.emit is monkey-patched to swallow EPIPE errors
  • process.reallyExit and process.exit are monkey-patched
  • Handlers are added to process beforeexit and exit events

These all have an effect on the environment and may be undesirable in some edge cases. Should any/all of these be opt-out or even opt-in? The goal is to be able to create functional tests using require('libtap').

Keywords

FAQs

Package last updated on 04 Jun 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc